home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr11
/
nr3_tech.zip
/
CLOAKV.TXT
< prev
next >
Wrap
Text File
|
1993-06-18
|
17KB
|
365 lines
Cloaking vs. Stealth
It has come to our attention that people would like an in-depth
comparison of Cloaking and Stealth technologies. The following
is a discussion of the differences between Cloaking and Stealth
in which we try to be objective, but of course we have a
preference. We welcome feedback.
This document discusses:
How does Stealth Work
What is Cloaking
The Netroom Cloaked BIOSs
Q & A:
Can my programs now operate in extended memory
Is Cloaking reliable
How can the Cloaked BIOS work on all systems
Does Cloaking work with Microsoft Windows
What about programs that access the BIOS directly
Will Cloaking work with SCSI and ESDI drives
Which approach is better
Conclusion
Before one can discuss the advantages and disadvantages of each,
one must understand the basic technologies behind Cloaking and
Stealth. These are two very different approaches to the problem
of creating more useable memory in the region between 640K and
1Mb (we'll adopt Microsoft's name for this region, "upper
memory".)
How does Stealth Work?
First we'll discuss Stealth: Stealth has several methods of
performing what is basically one task. What Stealth in ALL its
modes does is use the 386/486 (we'll use 386 to mean 386 or 486
from here on, unless a distinction is necessary) mapping
capability to place mappable RAM over the BIOS and redirect all
BIOS functions through the Stealth upper memory resident program.
When activity occurs that requires the BIOS QEMM uses the paging
(mapping and paging are used interchangeabley here) capabilities
of the CPU to re-map the BIOS back into the conventional memory
range. The BIOS can then process as is needed and when it is
done the mapping is restored to the state it was in prior to the
switch.
The three modes of Stealth dictate where the BIOS appears when it
is mapped in. In the :M and :F modes, when the BIOS is needed,
it is mapped in to the EMS page frame region. In the :P mode the
BIOS is mapped in place, and the upper memory that has been
placed over the BIOS is removed while the BIOS is processing.
Stealth, in other words, can be viewed as a high-speed, bank
switching, mini multi tasking environment, sort of like a
DesQView window that contains only the BIOS, while other programs
execute in the "other" window.
There is more to Stealth than that, because several issues become
important when programs need to access the BIOS. First is what
happens to data that the BIOS needs to access that resides in the
region that the BIOS is mapped over. For example if a program is
trying to write data from EMS to disk it would map the data into
the EMS page frame and issue a DOS call to write the data to
disk. The DOS call would eventually filter down to a BIOS disk
write call which would end up in QEMM/Stealth's lap. Stealth
then needs to map the BIOS in so that it can process the call.
But in order to map the BIOS in something has to be mapped out.
If Stealth is mapping the BIOS into the page frame it first must
map or copy the data someplace else, so that the BIOS can have
access to it.
The next issue that complicates matters is the issue of
interrupts. What happens if an interrupt occurs, while the BIOS
is active that is destined for a program in the "other window?"
Again, Stealth must play a mapping game, switching the BIOS in
and out.
Stealth does an admirable job of keeping all this in harmony,
except that to keep things simple under Windows (where things get
really hairy) Stealth cannot use it's :P mode and thus requires
that you use an EMS page frame.
What is Cloaking.
Cloaking is a completely different approach. Cloaking is
basically an API that allows programs that are "Cloaking aware"
to load themselves into protected mode and run from there.
Before we go into more detail, a brief discussion of 386 modes is
in order. The 386 has two basic modes of operation: real and
protected. In Real mode the 386 is simply a very fast 8088 with
a few extra instructions. In Real mode the 386 can access only
1Mb + 64K of RAM and is in most ways very similar to an 8088
Protected mode is the second mode of operation of the 386. In
protected mode the 386 operates in a vastly different
architecture that can access up to 4Gb of RAM and has the
capability to perform hardware mapping and protection. For the
layman that means that the operating system can make programs
think that any part of the systems physical memory can be mapped
(appear to exist) in any part of the address range, and memory
and other resources can be protected from accidental access by
errant programs.
When the cpu is in protected mode DOS programs can be run,
unaltered, in a special sub-mode of protected mode called virtual
86 mode (V86 mode.) In V86 mode DOS programs can only run with
some help from a protected mode program called a V86 mode control
program or host. The main difference between V86 mode and Real
mode is that in V86 mode the mapping capability of the 386 is
active as is the protection capabilities. However, programs
running in the V86 environment are still constrained to
addressing only 1Mb.
ALL memory managers, including Netroom, QEMM and DOS's EMM386 run
DOS programs in V86 mode. This means that the system IS ALWAYS
RUNNING IN PROTECTED MODE while any memory manager is active.
Also, the memory manager is the V86 host program and thus is
itself a full-fledged (not V86 mode) protected mode program,
which in most cases runs outside the 1Mb V86 address range.
What the Cloaking API provides is an environment in which other
programs can run outside the V86 memory space together with
Netroom's memory manager, RAM-Man/386 (RM386). These programs
then become part of the V86 host environment under which DOS
programs run in V86 mode.
For this to happen RM386 had to be modified so that other
programs could gain access to certain required parts of the 386
environment. Programs running in protected mode must, at the
very least, be able to access memory and perform I/O and RM386
had to be somewhat re-structured to allow programs to do so.
(For those with some familiarity with protected mode programming,
RM386 had to allow programs to allocate selectors, issue INT
instructions and access memory beyond the first megabyte.) This
is the essence of Cloaking.
The Netroom Cloaked BIOSs
What Netroom provides that is somewhat comparable to Stealth is
our Cloaked BIOS. This is comparable to Stealth only in the end
result which is that more upper memory is created. In operation
the Netroom Cloaked BIOS is completely different.
The Netroom Cloaked BIOS is a complete BIOS that has been
modified to run in protected mode (the exact nature of what has
to be changed in a program to allow it to run in protected mode
as opposed to V86 mode is beyond the scope of this paper, but the
changes are not extensive and relate mainly to the use of
selectors instead of segments.)
The operation of the Cloaked BIOS is fairly straightforward.
When the Cloaked BIOS loads it reads the entire system
configuration, queries the current BIOS and decides what kind of
system is running and what options are enabled and so on. The
Cloaked BIOS then takes over, loads into protected mode using the
start up parameters obtained from the system's own BIOS, and
shuts down the old BIOS.
Several questions come to mind immediately. Is this safe, aren't
all BIOS's different, isn't Stealth's approach of hiding the
system's own BIOS better, and so forth. We'll deal with all that
in a moment, but first we'll deal with the VGA video BIOS which
is handled somewhat differently.
Netroom has two different methods for dealing with VGA BIOS.
First we provide a standard VGA/SVGA BIOS which can substitute
for a large variety of VGA and super VGA BIOSs in a similar
manner to that described above for the System BIOS. However we
have also developed a special technique that allows Netroom to
Cloak your existing VGA BIOS. Using a special method we
developed we can actually copy an existing VGA BIOS into extended
memory and run it there as if it were designed to run in
protected mode.
Using this technique works on most VGA BIOS's but not all. So
Netroom tests the BIOS (sort of like Stealth's test) to see if
your VGA BIOS can operate safely in protected mode.
To answer those other commonly asked questions:
Q: Does Cloaking allow all programs to run in extended memory.
A: Yes and no. Cloaking is an API that allows any program that
has been DESIGNED TO USE THE CLOAKING API run in extended memory.
In most cases (except for some Video BIOSs) Cloaking will not
allow existing DOS drivers and programs to run in extended
memory. However, we provide in Netroom several programs already
designed to run Cloaked. These programs take the place of common
utilities and perform better for less memory. And soon you will
see many other vendors supporting the Cloaking API.
Q: Is cloaking reliable?
A: First Cloaking is absolutely reliable because the Cloaked BIOS
and other utilities are designed to be Cloaked. So that there is
no question of errant instructions performing out of turn.
Second, the Cloaked BIOS was licensed from Award Software, a
major BIOS manufacturer whose BIOSs can be found in machines from
AST to Toshiba. So compatibility is absolute and the BIOS is
thoroughly tested.
Q: How can the Cloaked BIOS work on all systems when I know that
all BIOSs have to be slightly different for each system design?
A: The Cloaked BIOS will work with most systems. This is true
because the differences between systems are almost entirely in
the start up code. This code, known as the Power On Self Test or
POST routines, must be slightly different for each system because
it must initialize the system's motherboard chipset. The chipset
(which is sometimes not a set but discreet electronics) controls
various system specific parameters like the system board cache
and shadow ram and so forth.
However once the POST routines are done, and the system starts
the boot-up process then the BIOSs are all the same. This, in
fact, is a necessity because otherwise there would be no industry
standards and all software would have to be machine specific.
So, our Cloaked BIOS takes over only after your own BIOS has
initialized and set up the system board correctly. Thus the
Cloaked BIOS works almost universally as we provide BIOSs for all
the major architectures, namely ISA, EISA, MCA and APM.
Q: But does Cloaking work with Windows?
A: A resounding YES. Cloaked programs run in protected mode just
like Windows programs. When Windows starts up the Cloaked
programs simply and automatically become Windows Virtual Device
Drivers that are designed to operate with Windows smoothly and
efficiently.
Q: What about programs that access the BIOS directly.
A: Programs that need to access the BIOS directly do so through a
region of upper memory called the compatibility vectors. The
Netroom Cloaked BIOS supports the use of these vectors and
maintains all the direct entry points into the BIOS and all the
tables that programs expect and need to access. This data is
maintained in the top 4 (or sometimes 8) Kb of upper memory
(which is where programs expect this information) so programs
which access the BIOS directly, like debuggers and remote control
software can continue to function.
Q: Will cloaking work with SCSI and ESDI controllers?
A: Yes, these kinds of controllers come with their own BIOS which
Netroom will not touch. Thus your hard disk will continue to be
accessed normally through the controller's own BIOS and the rest
of the BIOS functions will be performed by the Netroom Cloaked
BIOS.
Now to the heart of the matter, which approach is better?
Well, obviously we are biased, but here are some of the
advantages of Cloaking.
1. The Cloaked BIOS operates faster than the Stealthed BIOS
because there is no bank switching necessary. It takes only
roughly 10 machine instructions to switch from a DOS V86 program
to a protected mode program which is even fewer than is necessary
to switch to a regular V86 mode BIOS, and is far fewer than is
required to perform a mapping switch such as that performed by
stealth.
2. The Cloaked BIOS is safer and more stable. The Cloaked BIOS
will not exhibit any intermittent problems because all the BIOS
code is designed to be Cloaked. When testing a Stealthed BIOS
QEMM cannot possibly test all of the code and so there can be
some part of the BIOS which QEMM missed that does not operate
when Stealthed and when one of your programs activates that part
of the BIOS - crash.
3. Cloaking is a general purpose API so that other programs can
be Cloaked as well. As is evidenced by our Cloaked disk cache,
screen saver and ram drive. And look for other vendors to
support Cloaking.
4. Cloaking can operate under Windows using standard Windows
methodology so it is more stable than Stealth which has to trick
Windows into performing the pseudo multi tasking operations
required for the BIOS to multitask in a separate environment.
5. Cloaking does not require the use of an EMS page frame to
operate with Windows and so can provide 64K more than Stealth.
This is particularly useful since all the latest software is
either written for Windows, or based on DOS extenders and thus do
not need access to EMS. Stealth also requires roughly 26K of
upper memory overhead vs. Cloaking's 8K
Is there anything Stealth does better? Well, frankly no,
1. Stealth does allow certain special features (if any exist) of
a particular BIOS to continue to be accessed where Cloaking will
not. For instance if your BIOS has a hot key to slow down the
system for games you can continue to use it without re-booting.
Cloaking would require that you re-boot, slow down the system in
setup and then continue.
However, Stealth has no way to know if such features exist and
thus cannot test to make sure that such features operate properly
when stealthed. Secondly, any such feature that involves data
transfer (such as returning tables of information about the
system) will invariably break. And finally, Cloaking requires
simply that you re-boot to gain access to these features -- not a
bad trade-off for the performance and compatibility gains.
2. Stealth can hide other ROMs besides the VGA and System BIOSs.
Cloaking cannot do this. If your system has a hard disk
controller with its own BIOS, Cloaking will not allow you to move
or hide it whereas the :M mode of Stealth will attempt to hide
all BIOSs on your system. So if you have such a BIOS and you
need to use EMS you may gain more memory by using Stealth (but
not if you use any of our other Cloaked utilities.)
However there is a major drawback to this feature of Stealth in
that, again, Stealth is unable to thoroughly test the
functionality of most such BIOSs because they are not
standardized. So the end result is that you may gain some memory
(highly unlikely), but at a loss of stability and functionality.
Cloaking leaves such BIOSs alone purposefully. We could attempt
to Cloak them in a manner similar to that which we use for the
Video BIOS, but we chose not to. Our philosophy is one of
caution -- unless such BIOSs can be tested thoroughly when they
are relocated they should not be.
In conclusion:
Cloaking provides more memory
This is particularly true if you make use of our other Cloaked
utilities instead of their DOS equivalent. For instance the
Cloaked Disk Cache can save you over 80K if you use it instead of
PC-Kwik or SmartDrive.
Cloaking is faster and more reliable.
You won't see ANY performance drop. In fact you'll be able to
realize the advantages of having your BIOS take advantage of the
full 32 bit mode. And get a free BIOS upgrade at the same time.
Cloaking is an open API
We are completely open about what Cloaking is and how it works,
and provide the facility for other vendors to support Cloaking.
But why don't you be the judge of that, after all we have a 60
day unconditional return policy if you buy Netroom directly from
us.